/*
 *  $Id: IntArrayConverter.cs 1203 2010-11-22 18:41:11Z thenn.erannor $
 *	This file is a part of Ragima CCG.
 *	(C) 2008-2010 Ragima development group.
 *
 *	Licensed under the terms of the GNU GPL License version 2.
 *
 */

using System;

namespace Ragima.Serialization {
    /// <summary>
    /// Вспомогательный класс по конвертации между строкой и массивом чисел.
    /// </summary>
    internal static class IntArrayConverter {
        /// <summary>
        /// Получает строку по массиву чисел.
        /// </summary>
        public static string GetString(params int[] data) {
            var parts = Array.ConvertAll(data, value => value.ToString());
            return string.Join(" ", parts);
        }

        /// <summary>
        /// Получает массив чисел по строке.
        /// </summary>
        public static int[] GetArray(string s, int minLength) {
            var parts = s.Split(' ');
            var data = new int[Math.Max(parts.Length, minLength)];
            int value;
            for (int i = 0; i < parts.Length; i++)
                if (int.TryParse(parts[i], out value))
                    data[i] = value;
            return data;
        }
    }
}
